package com.zp.business.entity.patVisitIndex.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 患者入院基本信息视图对象
 *
 * @author zhang peng
 * @ date 2024-06-24
 */
@Data
@ExcelIgnoreUnannotated
public class PatVisitIndexVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String visitIndexId;

    /**
     * 住院id
     */
    @ExcelProperty(value = "住院id")
    private String visitId;

    /**
     * 新生儿标记
     */
    @ExcelProperty(value = "新生儿标记", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String newbornFlag;

    /**
     * 患者姓名
     */
    @ExcelProperty(value = "患者姓名")
    private String name;

    /**
     * 姓名拼音码
     */
    @ExcelProperty(value = "姓名拼音码")
    private String inputCode;

    /**
     * 身高(cm)
     */
    @ExcelProperty(value = "身高(cm)")
    private String height;

    /**
     * 体重(g)
     */
    @ExcelProperty(value = "体重(g)")
    private BigDecimal weight;

    /**
     * 性别
     */
    @ExcelProperty(value = "性别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_user_sex")
    private String sex;

    /**
     * 婚姻
     */
    @ExcelProperty(value = "婚姻", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "marriage_dict")
    private String marriage;

    /**
     * 职业
     */
    @ExcelProperty(value = "职业", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "profession_dict")
    private String occupation;

    /**
     * 年龄
     */
    @ExcelProperty(value = "年龄")
    private Integer age;

    /**
     * 年龄-月
     */
    @ExcelProperty(value = "年龄-月")
    private Integer ageMonth;

    /**
     * 年龄-天
     */
    @ExcelProperty(value = "年龄-天")
    private Integer ageDay;

    /**
     * 年龄-时
     */
    @ExcelProperty(value = "年龄-时")
    private Integer ageHours;

    /**
     * 年龄-分
     */
    @ExcelProperty(value = "年龄-分")
    private Integer ageMinutes;

    /**
     * 民族
     */
    @ExcelProperty(value = "民族", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "nation_dict")
    private String nation;

    /**
     * 国籍
     */
    @ExcelProperty(value = "国籍", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "nationality_dict")
    private String nationality;

    /**
     * 参保类型
     */
    @ExcelProperty(value = "参保类型")
    private String canBaoType;

    /**
     * 生日
     */
    @ExcelProperty(value = "生日")
    private Date birthdayDate;

    /**
     * 籍贯
     */
    @ExcelProperty(value = "籍贯")
    private String nativePlace;

    /**
     * 籍贯代码
     */
    @ExcelProperty(value = "籍贯代码")
    private String nativePlaceCode;

    /**
     * 邮编
     */
    @ExcelProperty(value = "邮编")
    private String zipCode;

    /**
     * 出生地编码
     */
    @ExcelProperty(value = "出生地编码")
    private String homePlaceCode;

    /**
     * 出生地
     */
    @ExcelProperty(value = "出生地")
    private String homePlace;

    /**
     * 住址编码
     */
    @ExcelProperty(value = "住址编码")
    private String addressCode;

    /**
     * 住址
     */
    @ExcelProperty(value = "住址")
    private String address;

    /**
     * 身份
     */
    @ExcelProperty(value = "身份")
    private String identity;

    /**
     * 身份证号
     */
    @ExcelProperty(value = "身份证号")
    private String idNo;

    /**
     * 电话
     */
    @ExcelProperty(value = "电话")
    private String phone;

    /**
     * 联系人
     */
    @ExcelProperty(value = "联系人")
    private String contacts;

    /**
     * 联系人地址
     */
    @ExcelProperty(value = "联系人地址")
    private String contactsAddress;

    /**
     * 联系人地址编码
     */
    @ExcelProperty(value = "联系人地址编码")
    private String contactsAddressCode;

    /**
     * 联系人电话
     */
    @ExcelProperty(value = "联系人电话")
    private String contactsPhone;

    /**
     * 联系人关系
     */
    @ExcelProperty(value = "联系人关系", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "relationship_dict")
    private String contactsRelation;

    /**
     * 联系人身份证号
     */
    private String contactsIdNo;

    /**
     * 合同单位ID
     */
    @ExcelProperty(value = "合同单位ID")
    private String unitInContractId;

    /**
     * 合同单位
     */
    @ExcelProperty(value = "合同单位")
    private String unitInContract;

    /**
     * 工作单位
     */
    @ExcelProperty(value = "工作单位")
    private String workContract;

    /**
     * 所属地区
     */
    @ExcelProperty(value = "所属地区")
    private String affiliatingArea;

    /**
     * 医保类别
     */
    @ExcelProperty(value = "医保类别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "medical_insurance_type")
    private String insuranceType;

    /**
     * 是否建档立卡户Y是N否
     */
    @ExcelProperty(value = "是否建档立卡户Y是N否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String isCard;

    /**
     * 费别
     */
    @ExcelProperty(value = "费别", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "charge_type_dict")
    private String chargeType;

    /**
     * 外部原因
     */
    @ExcelProperty(value = "外部原因")
    private String externalCause;

    /**
     * 是否尸检
     */
    @ExcelProperty(value = "是否尸检", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String autopsyFlag;

    /**
     * 实习医生
     */
    @ExcelProperty(value = "实习医生")
    private String practiceDoctor;

    /**
     * 进修医生
     */
    @ExcelProperty(value = "进修医生")
    private String engageDoctor;

    /**
     * 是否药物过敏Y是，N否
     */
    @ExcelProperty(value = "是否药物过敏Y是，N否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String isDrugAllerge;

    /**
     * 药品过敏
     */
    @ExcelProperty(value = "药品过敏")
    private String drugAllergy;

    /**
     * 机构ID
     */
    @ExcelProperty(value = "机构ID")
    private String orgId;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;

    /**
     * RH血型
     */
    @ExcelProperty(value = "RH血型")
    private String rh;

    /**
     * ABO血型
     */
    @ExcelProperty(value = "ABO血型")
    private String abo;

    /**
     * 病理诊断编码
     */
    @ExcelProperty(value = "病理诊断编码")
    private String pathologicalDiagCode;

    /**
     * 病理号
     */
    @ExcelProperty(value = "病理号")
    private String pathologicalNo;

    /**
     * 病理诊断
     */
    @ExcelProperty(value = "病理诊断")
    private String pathologicalDiag;

    /**
     * 户口地址邮编
     */
    @ExcelProperty(value = "户口地址邮编")
    private String registZipCode;

    /**
     * 户口地址
     */
    @ExcelProperty(value = "户口地址")
    private String registAddress;

    /**
     * 户口地址编码
     */
    @ExcelProperty(value = "户口地址编码")
    private String registAddressCode;

    /**
     * 工作单位邮编
     */
    @ExcelProperty(value = "工作单位邮编")
    private String workCode;

    /**
     * 工作单位电话
     */
    @ExcelProperty(value = "工作单位电话")
    private String workPhone;

    /**
     * 外部损伤中毒疾病编码
     */
    @ExcelProperty(value = "外部损伤中毒疾病编码")
    private String externalCauseCode;

    /**
     * 建议预交金
     */
    @ExcelProperty(value = "建议预交金")
    private BigDecimal paymentAdvice;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private String residenceNo;

    /**
     * 医疗付款方式
     */
    @ExcelProperty(value = "医疗付款方式", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "pay_way_dict")
    private String medicalPayWay;

    /**
     * 颅脑损伤患者昏迷时间入院前(天)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院前(天)")
    private String brainDamageTimeBeforeDay;

    /**
     * 颅脑损伤患者昏迷时间入院前(小时)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院前(小时)")
    private String brainDamageTimeBeforeHour;

    /**
     * 颅脑损伤患者昏迷时间入院前(分钟)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院前(分钟)")
    private String brainDamageTimeBeforeMinute;

    /**
     * 颅脑损伤患者昏迷时间入院后(天)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院后(天)")
    private String brainDamageTimeAfterDay;

    /**
     * 颅脑损伤患者昏迷时间入院后(小时)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院后(小时)")
    private String brainDamageTimeAfterHour;

    /**
     * 颅脑损伤患者昏迷时间入院后(分钟)
     */
    @ExcelProperty(value = "颅脑损伤患者昏迷时间入院后(分钟)")
    private String brainDamageTimeAfterMinute;

    /**
     * 是否有出院31天再住院计划
     */
    @ExcelProperty(value = "是否有出院31天再住院计划", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String comeAgainIf;

    /**
     * 再住院目的
     */
    @ExcelProperty(value = "再住院目的")
    private String comeAgainPurpose;

    /**
     * 人员类别编码
     */
    @ExcelProperty(value = "人员类别编码")
    private String persType;

    /**
     * 分级统筹中心编码
     */
    @ExcelProperty(value = "分级统筹中心编码")
    private String centerId;

    /**
     * 文化程度
     */
    @ExcelProperty(value = "文化程度")
    private String eduLevel;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private String matnType;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private String latechbFlag;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private String pretFlag;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private Date birctrlMatnDate;

    /**
     * 计划生育服务证号
     */
    @ExcelProperty(value = "计划生育服务证号")
    private String fpscNo;

    /**
     * 计划生育手术类型
     */
    @ExcelProperty(value = "计划生育手术类型")
    private String birctrlType;

    /**
     * 孕周数
     */
    @ExcelProperty(value = "孕周数")
    private String gesoVal;

    /**
     * 胎次
     */
    @ExcelProperty(value = "胎次")
    private String fetts;

    /**
     * 胎儿数
     */
    @ExcelProperty(value = "胎儿数")
    private String fetusCnt;

    /**
     * 本地状态
     */
    @ExcelProperty(value = "本地状态")
    private String localFlag;


    /**
     * 是否早产
     */
    private String isTrauma;

    /**
     * 是否晚育
     */
    private String isLateBirthFlag;

    /**
     * 生育类别
     */
    private String birthCategory;

    /**
     * 医保卡号
     */
    private String yiBaoCardCode;

    /**
     * 医保编号
     */
    private String yiBaoNumber;

    /**
     * 病人信息Id
     */
    private String patientId;

    /**
     * 入院科室
     */
    private String deptAdmissionTo;

    /**
     * 入院病区
     */
    private String wardAdmissionTo;

    /**
     * 入院申请表id
     */
    private String noticeId;

    /**
     * 入院途径
     */
    @ExcelProperty(value = "入院途径")
    private String channel;

    /**
     * 入院情况
     */
    private String hospitalSituation;

    /**
     * 隔离情况
     */
    private String quarantine;
}
